Boost converters are used in a wide variety of conventional applications, and an example of a conventional boost converter 100 can be seen. As shown, the controller 102 is able to control transistors Q1 and Q2 (through driver 104) so as to generate an output voltage and current at node OUT from an input voltage and current at node IN. The combination of the inductor L1 and capacitor C1 (arranged as shown) enable a high voltage to be output node as compared to the voltage at node IN. The current sensor 106, error amplifiers 110 and 108, and voltage divider (which is generally comprised of resistors R1 and R2) can then be used to generate feedback to allow the controller 102 to adjust the pulse widths of the signals applied to transistors Q1 and Q2 to achieve the desired current and voltage at node OUT.
One problem with this configuration, however, is that the controller 102 is typically an asynchronous state machine. Asynchronous state machines are usually complex and difficult to design. Moreover, asynchronous state machines can be very sensitive to its inputs, leading (potentially) to metastable states. Therefore, there is a need for an improved state machine.